﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Text.RegularExpressions;
using System.Data.SqlClient;

namespace VerdePimienta2._0
{
    public partial class Apertura : Form
    {
        string constring = "Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\VP\\des_VP.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
        //string constring = "Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\VP\\verdepimientadb.mdf;Integrated Security=True;User Instance=True";
        //string constring = "Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Documents and Settings\\Chema\\Mis documentos\\Visual Studio 2008\\Projects\\VerdePimienta2.0\\VerdePimienta2.0\\verdepimientadb.mdf;Integrated Security=True;User Instance=True";
        public Apertura()
        {
            InitializeComponent();
        }

        //Carga inicial panel
        private void Apertura_Load(object sender, EventArgs e)
        {
            // TODO: This line of code loads data into the 'verdepimientadbDataSet.LlenarCmbEmpleados' table. You can move, or remove it, as needed.
            //this.llenarCmbEmpleadosTableAdapter.Fill(this.verdepimientadbDataSet.LlenarCmbEmpleados);
            //cmbEmpleadosApertura.Refresh();

            RellenarComboEmpleados r = new RellenarComboEmpleados();
            r.RellenarComboE(cmbEmpleadosApertura);
            cmbEmpleadosApertura.SelectedIndex = 0;
        }        

        //Botón APERTURA CAJA
        private void btnabrirCaja_Click(object sender, EventArgs e)
        {
            if ((string.IsNullOrEmpty(txtCantidadApertura.Text)) || (txtCantidadApertura.Text == "0") || (cmbEmpleadosApertura.Text=="(Seleccione)"))
            {
                MessageBox.Show("Debe rellenar todas las casillas para realizar la apertura.", "Apertura.", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            else 
            {
                Validaciones val = new Validaciones();
                
                if ( val.EsNum(txtCantidadApertura.Text))
                {
                    DialogResult drAper = MessageBox.Show("¿Está seguro de realizar la apertura?", "Nueva Apertura.", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
                    
                    if (drAper == DialogResult.OK)
                    {
                        guardarDatosApertura();
                        modificarCaja();
                        
                        MessageBox.Show("Apertura realizada con éxito", "Apertura.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        
                        this.Close();
                    }
                    else
                    {
                        MessageBox.Show("Operación cancelada", "Apertura.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
                else 
                {
                    MessageBox.Show("El valor introducido en Cantidad no tiene un formato correcto. Introduzca un valor numérico.", "Apertura.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
        }

        private void modificarCaja()
        {
            string strSQL = "UPDATE ControlCierre SET Abierta = '1' ,FechaUltimaOperacion = GETDATE() WHERE IdCaja = 1";

            SqlConnection conAp = new SqlConnection(constring);
            conAp.Open();

            SqlCommand cmSQL = new SqlCommand(strSQL, conAp);
            
            try
            {
                cmSQL.ExecuteNonQuery();
            }
            catch (Exception exc)
            {
                MessageBox.Show("Error en acceso a base de datos.(Modificacion Caja)." + exc.Message , "Apertura.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            
            conAp.Close();
        }

        private void guardarDatosApertura()
        {
            //Abrir conexión                            
            SqlConnection conAp = new SqlConnection(constring);
            conAp.Open();

            SqlDataAdapter daAperturas = new SqlDataAdapter("Select * From Aperturas", conAp);
            
            DataSet dsAp = new DataSet("Aperturas");
            
            daAperturas.FillSchema(dsAp, SchemaType.Source, "Aperturas");
            daAperturas.Fill(dsAp, "Aperturas");
            
            DataTable tblAps;
            tblAps = dsAp.Tables["Aperturas"];
            DataRow drAp = tblAps.NewRow();

            //Guardar datos APERTURA en la tabla
            drAp["Cantidad"] = txtCantidadApertura.Text;
            drAp["Fecha"] = dtpFechaApertura.Text;
            drAp["Empleado"] = cmbEmpleadosApertura.Text;

            //Guardar la nueva línea en la tabla
            tblAps.Rows.Add(drAp);
            SqlCommandBuilder objCommandBuilder = new SqlCommandBuilder(daAperturas);
            daAperturas.Update(dsAp, "Aperturas");
                   
            conAp.Close();
        }
        
    }
}
